//  @ Project : GagalPanen
//  @ File Name : gameinterface.hpp
//  @ Date : 3/9/2011
//  @ Author : 
//
//


#if !defined(_GAMEINTERFACE_H)
#define _GAMEINTERFACE_H

#include <string>

class Creatures;
class Inventory;
class GameMaps;
class GameTime;
class View;
class Disaster;

class GameInterface {
public:
  virtual int getActionsCount() = 0;
  virtual Creatures* getCreatures() = 0;
  virtual Inventory* getInventory() = 0;
  virtual GameMaps* getMaps() = 0;
  virtual GameTime* getGameTime() = 0;
  virtual View* getView() = 0;
  virtual Disaster* getDisaster() = 0;
  virtual int getMaximumActionsPerDay() = 0;
  virtual void playerBuy(std::string item_name, int count) = 0;
  virtual void playerSell(int slot_number, int count) = 0;
  virtual void playerEat(int slot_number) = 0;
  virtual void playerHarvest() = 0;
  virtual void playerRight() = 0;
  virtual void playerLeft() = 0;
  virtual void playerUp(int step_count) = 0;
  virtual void playerDown() = 0;
  virtual void playerNorth() = 0;
  virtual void playerSouth() = 0;
  virtual void playerWest() = 0;
  virtual void playerEast() = 0;
  virtual void playerPlow() = 0;
  virtual void playerPut(int slot_id, int count) = 0;
  virtual void playerShowStore() = 0;
  virtual void playerSickle() = 0;
  virtual void playerTeleport(std::string nama_area_tujuan) = 0;
  virtual void playerShowTeleportHelp() = 0;
  virtual void playerWakeSpriteUp(int id) = 0;
  virtual void playerWater() = 0;
  virtual void playerSaveGame() = 0;
  virtual void playerSetSpriteToSleep(int id) = 0;
  virtual void playerShowInventory() = 0;
  virtual void playerShowSpriteStatus() = 0;
  virtual void start() = 0;
  virtual void playerExitGame() = 0;
  virtual void playerSleep() = 0;
  virtual void playerHelp() = 0;
  virtual void playerSuperAction() = 0;
};

#endif  //_GAMEINTERFACE_H
